www.gusucode.com > LTE基带收发仿真系统matlab源码程序 > LTE baseband simulation/ofdm_generation.m

    function ofdmSymb = ofdm_generation(mapSymbCell,FFT_SIZE,nTx,CP)
% OFDM符号生成,附加循环前缀,并完成天线端口数据并串变换
% 输入:mapSymbCell:来自子载波映射后的符号
%       FFT_SIZE:FFT变换点数
%       nTx:发端天线数
%       CP:循环前缀
% 输出:ofdmSymb:生成的ofdm符号
% 
%  Author:		程式小组(徐萌 张妙 张晓庆)
%  Date:		2010-07-11
%  ==========================================================
nOfdm = length(CP); % CP为一个子帧中每个OFDM符号上循环前缀长度
ofdmSymb = zeros(nTx,FFT_SIZE*nOfdm+sum(CP));
for iTx = 1:nTx
    begin = 1;
    for iOfdm = 1:nOfdm
        ending = begin+FFT_SIZE+CP(iOfdm)-1; % 当前OFDM符号结束位置
        ifftSymb = ifft(mapSymbCell{iTx}(:,iOfdm),FFT_SIZE); % IFFT变换
        cpAddSymb = [ifftSymb(end-CP(iOfdm)+1:end);ifftSymb]; % 添加循环前缀
        ofdmSymb(iTx,begin:ending) = cpAddSymb(:);               % 将每个天线端口上OFDM符号变成串行
        begin = ending+1; % 下一个OFDM符号起始位置
    end
end